home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / PowerPlant / AGA Classes 1.2 / Utilities / LAGAPopupMenu.h < prev    next >
Text File  |  1996-06-30  |  4KB  |  106 lines

  1. // ===========================================================================
  2. //    LAGAPopupMenu.h
  3. // ===========================================================================
  4. //    
  5. //    Copyright © 1996 Chrisoft (Christophe ANDRES)  All rights reserved.
  6. //
  7. //    You may use this source code in any application (commercial, shareware, freeware,
  8. //    postcardware, etc), but not remove this notice (no need to acknowledge the use of
  9. //    this class in the about box)
  10. //    You may not sell this source code in any form. This source code may be placed on 
  11. //    publicly accessable archive sites and source code disks. It may not be placed on 
  12. //    profit archive sites and source code disks without the permission of the author, 
  13. //    Christophe ANDRES.
  14. //    
  15. //        This source code is distributed in the hope that it will be useful,
  16. //        but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. //        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  18. //
  19. //    If you make any change or improvement on this class, please send the improved/changed
  20. //    version to : chrisoft@calva.net or Christophe ANDRES
  21. //                                     20, rue Prosper Mérimée
  22. //                                     67100 STRASBOURG
  23. //                                     FRANCE
  24. //
  25. // ===========================================================================
  26. //    LAGAPopupMenu.cp            <- double-click + Command-D to see class implementation
  27. //
  28. //    LAGAPopupMenu is simply a Popup menu class that works in windows with non white backgrounds.
  29. //    The standard Popup Menu CDEF erases in white its title, which in turn looks ugly if your
  30. //    background is NOT white.
  31. //
  32. //    Note:
  33. //        This class is called LAGAPopupMenu, because it was conceived to be used in conjunction with
  34. //        other “Apple Grayscale Appearance” classes, although it uses only the standard System 7
  35. //        Popup Menu CDEF and henceforth has NOT the look described in the AGA document.
  36. //        Sorry, no fancy new look ;)
  37. //
  38. //    Note:
  39. //        The use of this class is only necessary IF the Popup Menu you are using uses a title
  40. //
  41. //        This class requires AGAColors.cp to be present in your project
  42. //
  43. //        Version : 1.2
  44. //
  45. //        Change History (most recent first, date in US form : mm/dd/yy):
  46. //
  47. //                        06/30/96    ca        Public release of version 1.2
  48. //                        06/09/96    bp        Brad Pettit <bpettit@aimnet.com>
  49. //                                                        reimplemented using new StAGAEraseHack, since text alignment of the label
  50. //                                                        wasn't always correct for different fonts and label justification.
  51. //                        06/05/96    ca        Added RegisterClass method to ease registry
  52. //                                                        Added guard macros in header files
  53. //                                                        Increased version to 1.2
  54. //                        05/17/96    ca        Increased version to 1.1
  55. //                                                        Added change history
  56. //                        05/07/96    ca        class made available by Christophe ANDRES <chrisoft@calva.net>
  57. //                                                        (version 1.0)
  58. //
  59. //        To Do:
  60. //
  61.  
  62.  
  63. #ifndef _H_LAGAPopupMenu
  64. #define _H_LAGAPopupMenu
  65. #pragma once
  66.  
  67. #include <LStdControl.h>
  68.  
  69. class LAGAPopupMenu : public LStdControl
  70.  
  71. {
  72.     public:
  73.         enum { class_ID = 'AGAp' };
  74.         static void RegisterClass ();                                                                                                                                            //    <06/05/96    ca>
  75.         static LAGAPopupMenu*    CreateAGAPopupMenuStream (LStream *inStream);
  76.  
  77.         LAGAPopupMenu (LStream *inStream);
  78.         
  79.         LAGAPopupMenu (    const SPaneInfo &inPaneInfo, MessageT inValueMessage,
  80.                                         Int16 inTitleOptions, ResIDT inMENUid, Int16 inTitleWidth,
  81.                                         Int16 inPopupVariation, ResIDT inTextTraitsID, Str255 inTitle,
  82.                                         OSType inResTypeMENU, Int16 inInitialMenuItem);
  83.  
  84.         virtual MenuHandle GetMacMenuH ();
  85.         
  86.             //    begin    <06/09/96    bp>
  87.         virtual void SetValue (Int32 inValue);
  88.         virtual void SetMaxValue (Int32 inValue);
  89.         virtual void SetMinValue (Int32 inValue);
  90.             //    end <06/09/96    bp>
  91.         
  92.     protected:
  93.         virtual void DrawSelf ();
  94.         
  95.         Boolean TrackHotSpot (Int16 inHotSpot, Point inPoint);                                                                                        //    <06/09/96    bp>
  96.         
  97.         short mTitleWidth;
  98.     
  99.     private:
  100.         void InitAGAPopupMenu (Int16 inInitialMenuItem);
  101.         
  102.         void GetTitleRect (Rect& outRect);                                                                                                                                //    <06/09/96    bp>
  103. };
  104.  
  105. #endif
  106.